package cn.itcast.mapper;

import cn.itcast.domain.CheckGroup;
import cn.itcast.domain.CheckItem;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CheckGroupMapper {

    /**
     * 条件查询
     * @param queryString
     * @return
     */
    Page<CheckGroup> findPageByCondition(String queryString);


    void addGroup(CheckGroup checkGroup);

    void addComb(@Param("id")int id, @Param("array")Integer[] checkitemIds);

    void addCombine(@Param("id")int id, @Param("items")int items);

    /**
     * 通过CheckGroup_Id 获取中间表的itemId
     * @param id
     * @return
     */
    List<Integer> selectComboByCheckGroup_Id(Integer id);

    /**
     * 通过id获取每个CheckItem 类型的数据
     * @param item
     * @return
     */
    CheckItem selectCheckItemsListByIds(int item);

    /**
     * 更新表单数据
     * @param checkGroup
     */
    void updateCheeckGroupForm(CheckGroup checkGroup);

    /**
     * 通过groupId删除 中间表的数据
     * @param groupId
     */
    void deleteComboTableById(int groupId);

    /**
     * 新增中间表的数据
     * @param groupId
     * @param itemId
     */
    void insertNewCombo(@Param("groupId")int groupId, @Param("itemId")int itemId);

    /**
     *  删除 checkGroup表的数据
     * @param id
     */
    void deleteGroup(Integer id);

    /**
     *  获取所有的checkGroup 表数据
     * @return
     */
    List<CheckGroup> findAllPage();
}
